package com.wiselink.naver.productcatalog.response;

import lombok.Getter;
import lombok.Setter;
import lombok.ToString;

import java.util.List;

@Getter
@Setter
@ToString
public class BasePagination {

    /**
     * 页码
     * 페이지 번호
     */
    private Integer page;
    /**
     * 页面大小
     * 페이지 크기
     */
    private Integer size;
    /**
     * 总数
     * 전체 개수
     */
    private Long totalElements;
    /**
     * 整页数
     * 전체 페이지 수
     */
    private Integer totalPages;
    /**
     * 排序信息
     * 정렬 정보
     */
    private Sort sort;
    /**
     * 是否为第一页
     * 첫 번째 페이지 여부
     */
    private Boolean first;
    /**
     * 是否为最后一页
     * 마지막 페이지 여부
     */
    private Boolean last;

    @Getter
    @Setter
    @ToString
    public static class Sort {
        /**
         * 是否应用数据排序
         * 데이터 정렬 적용 여부
         */
        private Boolean sorted;
        /**
         * 排序应用字段信息
         * 정렬 적용 필드 정보
         */
        private List<Field> fields;
    }
    @Getter
    @Setter
    @ToString
    public static class Field {
        /**
         * 排序顺序 ASC（上升顺序），DESC（下降顺序）
         * 정렬 순서
         * Enum: ASC DESC
         * ASC(오름차순), DESC(내림차순)
         */
        private String direction;
        /**
         * 字段名称
         * 필드 이름
         */
        private String name;
    }
}
